﻿#include "CMainApp.h"


CM8QuickNotesApp::CM8QuickNotesApp(void) 
{
}

CM8QuickNotesApp::~CM8QuickNotesApp(void)
{
}

BOOL CM8QuickNotesApp::Init()
{

	CoInitializeEx(0, COINIT_MULTITHREADED); 

/////////////////////////////////////////////下面创建的窗口是带m8顶部的topbar(信号栏)的////////////////////////////////////////////////////////////////////////
	RECT rcWork = MzGetWorkArea();     // 获得工作区，这个例子中主窗口的工作区为除了顶部信号外的所有桌面,可以在这里自定义主窗口的大小
	m_MainWnd.Create(rcWork.left,rcWork.top,RECT_WIDTH(rcWork),RECT_HEIGHT(rcWork), 0, 0, 0); //创建主窗口,用了窗体的Create方法这里可以设置的窗口位置和尺寸大小
	m_MainWnd.SetBgColor(MzGetThemeColor(TCI_WINDOW_BG));              //设置窗口颜色，这个系统颜色定义，见下面的枚举类型enum ThemeColorIndex  这里可以自定义RBG(0,0,0)颜色
	
	m_MainWnd.SetWindowTextW(L"M8便签");
	m_MainWnd.Show();  	 //调用Show方法是将窗体设置为显示。对于窗体除了Show外还有另外一种显示方式，即DoModal();称为模态窗体，用于弹出窗口。模态窗口显示后会接管消息循环，此窗体显示在应用程序的最上层，就像一个对话框一样，



//////////////////////////////////////////////////下面创建的窗口是不带m8顶部的topbar(信号栏)的/////////////////////////////////////////////////////////////
//	m_MainWnd.Create(0,0,480,720,0,0,0);
//	HideMzTopBar();   ////编译的时候必须在[项目属性]-[链接器]–[输入]–[附加依赖项]--添加PlatformApi.lib (即使用M8特殊硬件的支持库)和CallInterface.lib(使用GPRS拨号的支持库)
//    m_MainWnd.Show();  
//////////////////////////////////////////////////需要可以替换/////////////////////////////////////////////////////////////////////////////////////////////


	return TRUE;        	// 初始化成功则返回TRUE.
}

// 全局的应用程序变量
CM8QuickNotesApp theApp;       //【《=====程序主是从这里开始的】




///////////////////////////////////////////////////////窗口的创建create函数说明////////////////////////////////////////////////////////
//   virtual BOOL CMzWnd::Create  ( int  xPos,  int  yPos,  int  width,  int  height,  HWND  hwndParent = NULL,  int  uID = NULL,  DWORD  style = WS_CHILD,  DWORD  exstyle = 0 ) 
//参数定义:
//xPos      窗口的左上角x坐标 
//yPos      窗口的左上角y坐标
//width     窗口宽度
//height    窗口宽度
//hwndParent  父窗口的句柄，省缺为NULL 
//uID       主窗口的ID,省缺为NULL
//style     0: 创建一个普通窗口; WS_CHILD: 创建一个子窗口; WS_POPUP:创建一个模态窗口(对话框用DoModal()弹出来)   
//exstyle   窗口的扩展窗口的类型
// hwndParent, uID, style, & exstyle 和 Win32's CreateWindow() API一样的意思. 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//ColorTheme.h文件参考中，定义了枚举变量 enum ThemeColorIndex  
//枚举值: 
// TCI_FIRST   
// TCI_WINDOW_BG  Window BG color  
// TCI_WINDOW_TEXT  Window Font color  
// TCI_BUTTON_TEXT  Button text color  
// TCI_BUTTONEX_TEXT  UiButtonEx left text color  
// TCI_BUTTONEX_TEXT2  UiButtonEx right text color  
// TCI_CAPTION_TEXT  UiCaption text color  
// TCI_EDIT_TEXT  edit control text color  
// TCI_LIST_TEXT  list control text 1 color, main text, default is black  
// TCI_LIST_TEXT2  list control text 2 color, default is gray  
// TCI_LIST_TEXT3  list control text 2 color, default is gray  
// TCI_STATIC_TEXT  static control text color  
// TCI_TOOLBAR_TEXT  text toolbar text color  
// TCI_TOOLBAR_TEXT_DISABLED  text toolbar disabled text color  
// TCI_CAPTION_BG1  edge color  
// TCI_CAPTION_BG2  middle color  
// TCI_LIST_GRIDLINE1_COLOR1  list grid line 1's edge color  
// TCI_LIST_GRIDLINE1_COLOR2  list grid line 1's middle color  
// TCI_LIST_GRIDLINE2_COLOR1  list grid line 2's edge color  
// TCI_LIST_GRIDLINE2_COLOR2  list grid line 2's middle color  
// TCI_LIST_TEXT_HIGHLIGHT  list item's text color 1, high-light color  
// TCI_BUTTON_TEXT_NEGATIVE  button's text negative color. negative with TCI_BUTTON_TEXT  
// TCI_LIST_SELECTED_BG_GRADIENT1  the selected list-item bg highlight gradient color 1 (TOP)  
// TCI_LIST_SELECTED_BG_GRADIENT2  the selected list-item bg highlight gradient color 2 (CENTER)  
// TCI_LIST_SELECTED_BG_GRADIENT3  the selected list-item bg highlight gradient color 3 (BOTTOM)  
// TCI_CAPTION_OUTER_LINE  outer line color  
// TCI_CAPTION_INNER_LINE  inner line color  
// TCI_LAST  

//可以用MZFC_API来获取颜色: COLORREF MzGetThemeColor  ( int  nThemeColorIndex   )   
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//整个程序运行中，函数运行的顺序是：

//1.--------CSampleApp.cpp执行---------程序入口

//2.----执行前调用CSampleApp.h中的函数定义
//3.----定义软件的主窗口类，CSampleWnd m_Mainwnd
//4.----启动init()函数初始化应用程序
//5.----在init()中，初始化COM
//6.----在init()中,m_Mainwnd.create窗口
//7.----在init()中.m_Mainwnd.show窗口
//8.----在6中，m_Mainwnd要显示上面的按钮
//9.-------------执行CSampleWnd.cpp-------------
//10.----执行前调用CSampleWnd.h中的函数定义
//11.----定义主窗口里面的控件类--按钮  UiButton m_btn；
//12.----m_Mainwnd执行初始化对话框OnInitDialog()
//13.----在OnInitDialog()中，初始化按钮，包括按钮的类型，位置，ID号，文本，颜色等
//14.----在OnInitDialog()中，AddUiWin(&m_btn)，将按钮显示在主窗口上
//15.-------执行消息处理------------循环
//16.----消息是窗口的消息，因此要重新写m_Mainwnd的消息处理函数OnMzCommand()
//17.----根据OnMzCommand()传递进来的消息ID号，处理消息
//18.----用switch...case1..break.. case2..break...处理消息
//19.-----当处理达到一定的条件，用PostQuitMessage(0)告诉CSampleApp，退出消息循环
//20.-------------------退出程序--------

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
